
package services;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import database.*;
import java.text.DateFormat;
import mapping.*;

public class CommentaireService {
    
       public CommentaireService() {
    }
    
    
        // Ajout Commentaire
        public int addCommentaire(Commentaire commentaire) {
                int result=0;
      
                DbManager connect = new DbManager();
		Connection conn = null;
		conn = connect.Open_ConnectDB();
		DbProcess process = new DbProcess();

                String t = "insert into Commentaire(id_article,id_utilisateur,date_commentaire,commentaire)";
                t += " values ("+commentaire.getId_article()+","
                        + ""+ commentaire.getId_utilisateur()+","
                        + "'"+commentaire.getDate_commentaire()+"',"
                        + "'"+commentaire.getCommentaire() +"')";
                System.out.println(t);
		if (process.Execute_DB(conn, t))
                {System.out.println("Ok!"); result=1;}
		connect.Close_ConnectDB(conn);
               
                return result;
	}
        public List<Commentaire> findAllCommentaire(int id_article) {
		List<Commentaire> listAllCommentaire = new ArrayList<Commentaire>();
		DbManager connect = new DbManager();
		Connection conn = null;
		conn = connect.Open_ConnectDB();
		DbProcess process = new DbProcess();
		Query queryString = new Query();
		String t = "select * from Commentaire, Utilisateur where Commentaire.id_utilisateur=Utilisateur.id_utilisateur and id_article="+id_article+" order by id_commentaire desc";
                System.out.println(t);
		ResultSet result = null;
		try {
			result = process.Get_DB(conn, t);
                       if(result!=null){
                           while (result.next()) {
				Commentaire commentaire = new Commentaire();
                                commentaire.setId_commentaire(result.getInt("id_commentaire"));
                                commentaire.setId_article(result.getInt("id_article"));
                                commentaire.setId_utilisateur(result.getInt("id_utilisateur"));
                                
                                
                                Date date_create = result.getDate("date_commentaire");
                                Date heure_create = result.getTime("date_commentaire");
                                DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
                                String dateName = dateFormat.format(date_create);
                                
                                DateFormat heurFormat = new SimpleDateFormat("HH:mm:ss");
                                String heurName = heurFormat.format(heure_create);
                                dateName += " à "+heurName;
                                commentaire.setDate_commentaire(dateName);
                                
                                commentaire.setCommentaire(result.getString("commentaire"));
                                commentaire.setNom_utilisateur(result.getString("nom_prenoms_utilisateur"));
                                              
				listAllCommentaire.add(commentaire);
                           }
                       }
		} catch (Exception e) {
			System.out.println("Connexion failed");
		}
		
		connect.Close_ConnectDB(conn);
		return listAllCommentaire;

	} 
}
